/*
 * Licensed to the 南京汇海交通科技有限公司
 *
 * Copyright (c) 2025.
 * All rights reserved.
 *
 * 本软件属南京汇海交通科技有限公司所有，在未获得南京汇海交通科技有限公司正式授权情况下，任何企业和个人，不能获取、阅读、安装、传播本软件涉及的任何受知识产权保护的内容。
 */
package com.chframework.cloud.core.openfeign;

import com.chframework.common.constant.SystemConstant;
import feign.Request.Options;
import feign.RequestTemplate;
import feign.Response;

import java.util.Collection;

public interface FeignClientAdvice {

    /**
     * 前置通知
     */
    void beforeAdvice(RequestTemplate requestTemplate);

    /**
     * 返回通知
     */
    void returnAdvice(Response response, Options options);

    /**
     * 读取响应头配置
     */
    static String readResponseHeader(Response response, String name) {
        Collection<String> values = response.headers().get(name);

        String result;
        if (values == null || values.size() <= 0) {
            return null;
        }
        if (values.size() > 1) {
            result = String.join(SystemConstant.CHAR_SEQUENCE_SEPARATOR, values);
        } else {
            result = values.iterator().next();
        }
        return result;
    }

}
